package com.zhiyume.service.util;


import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.collections.map.HashedMap;

import java.util.List;
import java.util.Map;

public class JsonUtil {

    /**
     * 判断一个json 是否合法
     */
    public static boolean validateJson(String json) {
        boolean isJson = true;
        try {
            JSONObject.parseObject(json);
            //JSONObject.parseObject(json);
        } catch (Exception e) {
            isJson = false;
        }
        return isJson;
    }

    /**
     * 根据异常信息转换成json字符串
     */
    public static String returnErrorInfo(String errType, String errMsg) {
        JSONObject json = new JSONObject();
        json.put("errType", errType);
        json.put("errMsg", errMsg);
        return json.toString();
    }

    /**
     * 返回信息
     *
     * @param errType
     * @param errMsg
     * @param t
     * @return
     */
    public static <T> Map returnResult(String errType, String errMsg, T t) {

        Map<String,Object> result = new HashedMap();

        result.put("errType", errType);
        result.put("errMsg", errMsg);
        result.put("data",t);
        return result;
    }

    /**
     * 返回信息
     *
     * @param errType
     * @param errMsg
     * @param t
     * @return
     */
    public static Map returnResult(String errType, String errMsg) {

        Map<String,Object> result = new HashedMap();

        result.put("errType", errType);
        result.put("errMsg", errMsg);
        return result;
    }


    /**
     * 返回成功信息
     *
     * @param errType
     * @param errMsg
     * @param object
     * @return
     */
    public static String returnSuccessInfo(String errType, String errMsg, Object object) {
        //JSONObject json = JSONObject.fromObject(object);
//        String jsonStr = JSONObject.toJSONString(object);
//        JSONObject json = JSONObject.parseObject(jsonStr);
        JSONObject json = new JSONObject();

        json.put("errType", errType);
        json.put("errMsg", errMsg);
        json.put("data",JSONObject.toJSONString(object));
        return json.toString();
    }
    public static String returnSuccessInfo(String errType, String errMsg, List object) {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("errType", errType);
        jsonObject.put("errMsg", errMsg);
        jsonObject.put("data",JSONArray.toJSONString(object));
       // String jsonStr = JSONArray.toJSONString(object);
       // JSONArray array = JSONArray.parseArray(jsonStr);
        //jsonObject.se
        return jsonObject.toJSONString();
    }
    public static String returnSuccessInfo(String errType, String errMsg) {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("errType", errType);
        jsonObject.put("errMsg", errMsg);
        return jsonObject.toJSONString();
    }
}
